package com.letao.service;

import java.util.List;

import com.letao.pojo.Admin;
import com.letao.pojo.Transaction;
import com.letao.pojo.User;
import com.letao.pojo.Userexpand;
import com.letao.pojo.UserFocus;

public interface UserServiceInterface {
	/**
	 * 新建用户
	 * @param user 用户信息
	 * @return boolean 是否成功
	 * @throws Exception
	 */
	boolean addUser(User user)throws Exception;
	/**
	 * 删除用户
	 * @param user 用户信息
	 * @return boolean 是否成功
	 * @throws Exception
	 */
	boolean deleteUser(User user)throws Exception;
	/**
	 * 更新用户信息
	 * @param user 用户信息
	 * @return boolean 是否成功
	 * @throws Exception
	 */
	boolean updateUser(User user)throws Exception;
	/**
	 * 根据用户ID获取该用户信息
	 * @param Uid 用户ID
	 * @return User 用户信息
	 * @throws Exception
	 */
	User getUserByUid(Integer Uid)throws Exception;
	/**
	 * 新建用户扩展信息
	 * @param userExpand 用户扩展信息
	 * @return boolean 是否成功
	 * @throws Exception
	 */
	boolean addUserExpand(Userexpand userExpand)throws Exception;
	/**
	 * 删除用户扩展信息
	 * @param userExpand 用户扩展信息
	 * @return boolean 是否成功
	 * @throws Exception
	 */
	boolean deleteUserExpand(Userexpand userExpand)throws Exception;
	/**
	 * 更新用户扩展信息
	 * @param userExpand 用户扩展信息
	 * @return boolean 是否成功
	 * @throws Exception
	 */
	boolean updateUserExpand(Userexpand userExpand)throws Exception;
	/**
	 * 根据用户ID得到该用户扩展信息
	 * @param Uid 用户ID
	 * @return UserExpand 用户扩展信息
	 * @throws Exception
	 */
	Userexpand getUserExpandByUid(Integer Uid)throws Exception;
	/**
	 * 新建管理员
	 * @param admin 管理员信息
	 * @return boolean 是否成功
	 * @throws Exception
	 */
	boolean addAdmin(Admin admin)throws Exception;
	/**
	 * 删除管理员
	 * @param admin 管理员信息
	 * @return boolean 是否成功
	 * @throws Exception
	 */
	boolean deleteAdmin(Admin admin)throws Exception;
	/**
	 * 更新管理员信息
	 * @param admin 管理员信息
	 * @return boolean 是否成功
	 * @throws Exception
	 */
	boolean updateAdmin(Admin admin)throws Exception;
	/**
	 * 根据用户名和密码验证正确性
	 * @param Ualais 用户名
	 * @param Upassword 密码
	 * @return User 返回该用户信息
	 * @throws Exception
	 */
	User checkUserByUalaisAndPass(String Ualais,String Upassword)throws Exception;
	/**
	 * @param Ualais 用户名
	 * @return boolean 是否存在
	 * @throws Exception
	 */
	boolean checkUserByUalais(String Ualais)throws Exception;
	/**
	 * 列出所有用户信息
	 * @return List
	 * @throws Exception
	 */
	List<User> findAllUser()throws Exception;
	/**
	 * 列出所有管理员信息
	 * @return
	 * @throws Exception
	 */
	List<Admin> findAllAdmin()throws Exception;
	/**
	 * 增加关注信息
	 * @param userFocus 关注信息
	 * @return boolean 是否成功
	 * @throws Exception
	 */
	boolean addUserFocus(UserFocus userFocus)throws Exception;
	/**
	 * 删除关注信息
	 * @param userFocus 关注信息
	 * @return boolean 是否成功
	 * @throws Exception
	 */
	boolean deleteUserFocus(UserFocus userFocus)throws Exception;
	/**
	 * 更新关注信息
	 * @param userFocus 关注信息
	 * @return boolean 是否成功
	 * @throws Exception
	 */
	boolean updateUserFocus(UserFocus userFocus)throws Exception;
	
	/**
	 * 根据用户ID获得用户关注列表
	 * @param Uid 用户ID
	 * @return List
	 * @throws Exception
	 */
	List<UserFocus> getUserFocusByUser(Integer Uid)throws Exception;
}
